// app.ts
import {basicConfig} from "./api/public.js";

App<IAppOption>({
  globalData: {
    spid: 0,
    code: 0,
    debug: true,
    isLogin: false,
    userInfo: {},
    MyMenus: [],
    globalData: false,
    isIframe: false,
    tabbarShow: true,
    windowHeight: 0,
    locale: '',
  
  },
  onLaunch(options: any) {

    console.log('🚀 小程序启动');
  
    // 处理分享进入的场景
    this.handleShareScene(options);
    
    // 配置信息
    basicConfig().then((res) => {
      wx.setStorageSync('BASIC_CONFIG', res.data);
    }).catch((error) => {
      console.error('获取基础配置失败:', error);
      // 设置默认配置
      wx.setStorageSync('BASIC_CONFIG', {
        wechat_auth_switch: false
      });
    });

    // 登录
    // wx.login({
    //   success: res => {
    //     console.log(res.code)
    //     // 发送 res.code 到后台换取 openId, sessionKey, unionId
    //   },
    // })
  },

  onShow(options: any) {
    // 处理分享进入的场景
    this.handleShareScene(options);
  },

  /**
   * 处理分享进入的场景
   */
  handleShareScene(options: any) {
    // 场景值说明：
    // 1007: 单人聊天会话中的消息卡片
    // 1008: 群聊会话中的消息卡片
    // 1036: App 分享消息卡片
    // 1044: 带 ShareTicket 的小程序消息卡片
    if (options.scene === 1007 || options.scene === 1008 || options.scene === 1036 || options.scene === 1044) {
      const query = options.query || {};
      
      // 从分享链接获取推广人ID
      if (query.spread) {
        const spreadUid = parseInt(query.spread);
        if (spreadUid > 0) {
          this.globalData.spid = spreadUid;
          console.log('从分享链接获取推广人ID:', spreadUid);
          
          // 保存到缓存，确保用户未登录时也能获取
          wx.setStorageSync('invite_spread_uid', spreadUid);
        }
      }
      
      // 从扫码进入
      if (query.scene) {
        const scene = decodeURIComponent(query.scene);
        const spreadMatch = scene.match(/spread[=:](\d+)/);
        if (spreadMatch && spreadMatch[1]) {
          const spreadUid = parseInt(spreadMatch[1]);
          if (spreadUid > 0) {
            this.globalData.spid = spreadUid;
            console.log('从扫码场景获取推广人ID:', spreadUid);
            wx.setStorageSync('invite_spread_uid', spreadUid);
          }
        }
      }
    }
  },

  
})